SQLite 函数

SQLite TOTAL() 函数返回表达式值不为 NULL 的表达式的求和值。

如果没有非 NULL 输入行,则为 TOTAL () 返回 0.0。

TOTAL() 的结果始终是浮点值。

此函数永远不会引发"整数溢出"异常。

注意:另请参阅SUM() 函数。

语法

使用 TOTAL() 函数的语法如下:

SELECT TOTAL(column_name) 
FROM table_name
WHERE condition(s);

SQLite GROUP BY 子句用于当一列或多列时将结果表排列成相同的组被使用。请注意,必须在 GROUP BY 子句中包含那些未封装在 TOTAL() 函数中的列名。请参阅以下语法:

SELECT column1, column2, ...
       TOTAL(column_name) 
FROM table_name
WHERE condition(s)
GROUP BY column1, column2, ...;

参数

column1, column2, ... 指定未封装在 TOTAL() 函数中的列名。它必须包含在 GROUP BY 子句中。
column_name 指定求和值需要计算的列或表达式
table_name 指定需要检索记录的表名。
WHERE condition 可选。 指定条件。根据指定条件选择记录。

返回值

返回给定表达式的总和值。

示例 - 单列

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5 RameshNew Delhi283000
6HuangBeijing282800

获取所有员工的工资总额如果年龄大于 25 岁,则可以使用以下查询:

SELECT TOTAL(Salary) AS TotalSalary 
FROM Employee
WHERE Age > 25;

这将产生如下所示的结果:

TotalSalary
11700.0

示例 -使用DISTINCT

DISTICT 子句可以与TOTAL() 函数一起使用。例如 - 要获取不同(唯一)工资的总工资,可以使用以下代码:

SELECT TOTAL(DISTINCT Salary) AS TotalUniqueSalary 
FROM Employee;

这将产生如下所示的结果:

TotalUniqueSalary
11650.0

示例 - 使用公式

TOTAL() 函数中包含的表达式不必是单个字段。此函数还可以使用公式。例如 - 考虑向每位员工发放奖金(工资的 15%),要计算奖金总额,可以使用以下查询:

SELECT TOTAL(Salary * 0.15) AS TotalBonusAmount
FROM Employee;

这将产生结果如下图:

TotalBonusAmount
2617.5

示例 - 使用 GROUP BY

要按年龄获取员工组的总工资,可以使用以下查询:

SELECT Age, TOTAL(Salary) AS TotalSalaryByAge 
FROM Employee
GROUP BY Age;

上述代码的结果将是:

AgeTotalSalaryByAge
242750.0
253000.0
272800.0
285800.0
303100.0